<?php
/*
--------------------------------------------------------------------------------------------
FUNCION: Inserta un registro en la bitacora de seguridad cuando se hace un insert o update
PARAMETROS: 
$qry= consulta sql
$name = nombre del objeto
$default= valor por default
$x = nombre de la funcion onchange
--------------------------------------------------------------------------------------------

*/
function combo_mysql($query, $name, $default, $x) { 
	if($x) $onchange = "onchange='$x'"; else $onchange = '';
	$result="<select onchange='$x' name=\"$name\" id=\"$name\" class=\"datos\">\n"; 
	$result.="<option value='' selected>--></option>";
	while (list($key,$val)= mysql_fetch_array($query)) { 
		 if ($default == $key) {$selected="selected";} else {$selected="";}  
		   $result.="<option value=\"$key\" $selected>$val</option>\n"; 
	} 
	$result.="</select>\n"; 
	return $result; 
}

/*
--------------------------------------------------------------------------------------------
FUNCION: Genera un combo con valores obtenidos de la consulta a la base de datos
PARAMETROS: 
$qry= consulta sql
$name = nombre del objeto
$default= valor por default
$x = nombre de la funcion onchange
$status = puede contener el parametro disable para desactivar el combo
--------------------------------------------------------------------------------------------
*/
function combo_sqlsrv($query, $name, $default, $x, $status='') { 
	if($x) $onchange = "onchange='$x'"; else $onchange = '';
	$result="<select $onchange name=\"$name\" id=\"$name\" class=\"datos\" $status>\n"; 
	$result.="<option value='' selected>--></option>";
	while (list($key,$val)= mssql_fetch_array($query)) { 
		 if (rtrim($default) == rtrim($key)) {$selected="selected";} else {$selected="";}  
		   $result.="<option value=\"$key\" $selected>$val</option>\n"; 
	} 
	$result.="</select>\n"; 
	return $result; 
}

/*
--------------------------------------------------------------------------------------------
FUNCION: genera un combo con valores obtenidos de una matriz
PARAMETROS: 
$matriz= matriz a procesar
$name = nombre del objeto
$default= valor por default
$x = nombre de la funcion onchange
$status = puede contener el parametro disable para desactivar el combo
--------------------------------------------------------------------------------------------
*/
function combo_matriz($matriz, $name, $default,$valori,$x,$status='') { 
	if($x) $onchange = "onchange='$x'"; else $onchange = '';
	$result="<select $onchange name=\"$name\" id=\"$name\" class=\"datos\" $status>\n"; 
	if ($valori > 0){ $result.="<option value=''>--></option>";}
	for ($i=$valori;$i<=count($matriz); $i++){
		$key = $i;
		if ($default == $key) {$selected="selected";} else {$selected="";} 
		$result.="<option value='$key' $selected>$matriz[$i]</option>\n"; 
	} 
	$result.="</select>\n"; 
	return $result; 
}

/*
--------------------------------------------------------------------------------------------
FUNCION: Inserta un registro en la bitacora de seguridad cuando se hace un insert o update
PARAMETROS: 
$id= el id_principal del registro que se afecta
$tabla = nombre de la tabla afectada
$accion= 1 insert, 2 update, 3 delete
$tipoSql = 0 sqlserver, 1 mysql
--------------------------------------------------------------------------------------------
*/
function catalogoMssql ($campo, $tabla, $select, $clave,$link) {
	$sql = "SELECT $select FROM $tabla WHERE $clave = '$campo'";

	$r = mssql_query($sql,$link);
	$row = mssql_fetch_array($r);
	return $row[0];	
}


/*
--------------------------------------------------------------------------------------------
FUNCION: Inserta un registro en la bitacora de seguridad cuando se hace un insert o update
PARAMETROS: 
$id= el id_principal del registro que se afecta
$tabla = nombre de la tabla afectada
$accion= 1 insert, 2 update, 3 delete
$tipoSql = 0 sqlserver, 1 mysql
--------------------------------------------------------------------------------------------
*/
function bitacora($id,$tabla,$accion,$link,$tipoSql=0){

	$iplocal = $_SERVER['REMOTE_ADDR'];
	$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
	$user = $_SESSION['id_usuario'];
	$query_bitacora = "INSERT INTO aux_bitacora (id_principal,cIp,id_usuario,nAccion,cTabla,cHost) 
		VALUES ($id,'$iplocal',$user,$accion,'$tabla','$host')";
	if ($tipoSql == 0)	
		mssql_query($query_bitacora,$link) ;
	else
		mysql_query($query_bitacora,$link) ;	
	return;
}

/*
-------------------------------------------------------------------------
FUNCION: Obtiene la edad a partir de la fecha de nacimiento
PARAMETROS: $fechaNac= formato dd/mm/aaaa
-------------------------------------------------------------------------
*/
function sacaEdad($fechaNac){
	list($dia,$mes,$anio) = explode("/",$fechaNac);
	list($diaA,$mesA,$anioA) = explode("/",date("j/n/Y"));
	if (($mes == $mesA) && ($dia > $diaA)) 
		$anioA=($anioA-1); 
 
 	if ($mes > $mesA) 
		$anioA = ($anioA-1);
 
	$edad=($anioA-$anio);
	return $edad;
}

// ----------------------------------------------------------------------


/*
-------------------------------------------------------------------------
FUNCION: Quita de la cadena, caracteres especiales como ', ', ;, #
PARAMETROS: $cadena= string
-------------------------------------------------------------------------
*/
 function limpia_usuario2($cadena){
 	$cadena = str_replace("\'","",$cadena);
	$cadena = str_replace("#","",$cadena);		
	$cadena = str_replace(";","",$cadena);
	$cadena = str_replace("�","N",$cadena);	
	$cadena = str_replace("�","n",$cadena);			
	$cadena = str_replace("%","",$cadena);				
	$cadena = str_replace("|","",$cadena);					
	return $cadena;
 }

/*
-------------------------------------------------------------------------
FUNCION: Quita de la cadena, caracteres especiales como ', ', ;, #
PARAMETROS: $cadena= string
-------------------------------------------------------------------------
*/
 function limpia_usuario($cadena){
 	$cadena = str_replace("\'","",$cadena);
	$cadena = str_replace(" ","",$cadena);	
	$cadena = str_replace("#","",$cadena);		
	$cadena = str_replace(";","",$cadena);
	$cadena = str_replace("�","N",$cadena);	
	$cadena = str_replace("�","n",$cadena);			
	$cadena = str_replace("%","",$cadena);				
	$cadena = str_replace("|","",$cadena);					
	return $cadena;
 }

// ----------------------------------------------------------------------

/*
-------------------------------------------------------------------------
FUNCION: Quita de la cadena, caracteres especiales como ', ', ;, #
PARAMETROS: $cadena= string
-------------------------------------------------------------------------
*/
 function limpia_cadena($cadena){

 	$cadena = str_replace("'","",$cadena);
	$cadena = str_replace("/","",$cadena);
	$cadena = str_replace("#","",$cadena);		
	$cadena = str_replace(";","",$cadena);			
	$cadena = str_replace("%","",$cadena);				
	$cadena = str_replace("|","",$cadena);					
	return $cadena;

 }

// ----------------------------------------------------------------------

function sacaunidad($v_id_unidad,$link){
	$idunidad = $v_id_unidad;
	$sql = "select concat(d.corto,' ',a.nombre) as descripcion from catalogos.unidades a
			inner join catalogos.tipologia d on (a.id_tipologia = d.id_tipologia)
			WHERE a.id_unidad = $idunidad";
	list($tit)=mysql_fetch_row(mysql_query($sql,$link));
	if ($tit){ $tit = "$tit";}
	return $tit;
}

function printhour(){
	echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='1'>(";
	echo date("d/m/Y H:i:s");
	echo ")</font>";
	return;
}

function imprime($dato){
	if ($dato > 0){ }else{ $dato = "-";}
	$x = "<td align='center'>$dato</td>";
	return  $x;
}

/*-------------------------------------------------------------------------------------------
FUNCION: Muestra un mensaje de alerta y despu�s se redirecciona a la pagina indicada
PARAMETROS: 
$texto= cadena que se mostrar� el la alerta
$pagina = nombre de la p�gina a donde se redirecciona
--------------------------------------------------------------------------------------------*/
function mensaje($texto,$pagina){
	echo "<script language='javascript'>\n"; 
	echo "alert('$texto');\n";
	echo "var pagina = '$pagina'; \n";
	echo "window.location.href = pagina;\n</script>";
	exit;
}
// ------------------------------------------------------------------------------------------
/*-------------------------------------------------------------------------------------------
FUNCION: Muestra un mensaje de alerta y despu�s se redirecciona a la pagina indicada
PARAMETROS: 
$texto= cadena que se mostrar� el la alerta
$pagina = nombre de la p�gina a donde se redirecciona
--------------------------------------------------------------------------------------------*/
function alerta($texto){
	echo "<script language='javascript'>\n"; 
	echo "alert('$texto');\n";
	echo "</script>";
	exit;
}
// ------------------------------------------------------------------------------------------


/*-------------------------------------------------------------------------------------------
FUNCION: va a la pagina indicada
PARAMETROS: 
$pagina = nombre de la p�gina a donde se redirecciona
--------------------------------------------------------------------------------------------*/
function Go_To($pagina){
	echo "<script language='javascript'>\n"; 
	echo "var pagina = '$pagina'; \n";
	echo "window.location.href = pagina;\n</script>";
	exit;
}
// ------------------------------------------------------------------------------------------

function catalogo($campo, $tabla, $select, $clave,$link) {
	$sql = "SELECT $select FROM $tabla WHERE $clave = '$campo'";
	//echo $sql;
	$r = mssql_query($sql,$link) or die(mssql_get_last_message());
	$row = mssql_fetch_row($r);
	return $row[0];	
}
function catalogoMysqlsincomillas ($campo, $tabla, $select, $clave,$link) {
	$sql = "SELECT $select FROM $tabla WHERE $clave = $campo";
	
	$r = mysql_query($sql,$link);
	$row = mysql_fetch_array($r);
	return $row[0];	
}
function catalogoMysql ($campo, $tabla, $select, $clave,$link) {
	$sql = "SELECT $select FROM $tabla WHERE $clave = '$campo'";

	$r = mysql_query($sql,$link);
	$row = mysql_fetch_array($r);
	return $row[0];	
}

// Consulta el cat�logo y agrega alguna condici�n a la consulta
function catalogo2 ($campo, $condicion, $tabla, $select, $clave,$link) {
	$sql = "SELECT $select FROM $tabla WHERE $clave = '$campo' $condicion";
	$r = mssql_query($sql,$link) or die(mssql_get_last_message());
	$row = mssql_fetch_row($r);
	return $row[0];	
}

function listbox_field1($mssql_link, $name, $default) { 
	$result="<select name=\"$name\" class=\"datos\">\n"; 
	$result.="<option value='' selected>--></option>";
	while (list($key,$val)= mssql_fetch_array($mssql_link)) { 
	 if ($default == $key) {$selected="selected";} else {$selected="";} 
		   $result.="<option value=\"$key\" $selected>".strtoupper($val)."</option>\n"; 
	} 
	$result.="</select>\n"; 
	return $result; 
}

function listbox_field2($query, $name, $default) { 
	$result="<select name=\"$name\" id=\"$name\" class=\"datos\">\n"; 
	$result.="<option value='' selected>--></option>";
	while (list($key,$val)= mysql_fetch_array($query)) { 
		 if ($default == $key) {$selected="selected";} else {$selected="";}  
		   $result.="<option value=\"$key\" $selected>$val</option>\n"; 
	} 
	$result.="</select>\n"; 
	return $result; 
}
function listbox_field3($query, $name, $default, $x) { 
	$result="<select onchange='$x' name=\"$name\" id=\"$name\" class=\"datos\">\n"; 
	$result.="<option value='' selected>--></option>";
	while (list($key,$val)= mysql_fetch_array($query)) { 
		 if ($default == $key) {$selected="selected";} else {$selected="";}  
		   $result.="<option value=\"$key\" $selected>$val</option>\n"; 
	} 
	$result.="</select>\n"; 
	return $result; 
}

function listbox_field4($query, $name, $default) { 
	$result="<select name=\"$name\" id=\"$name\" class=\"datos\">\n"; 
	$result.="<option value='' selected>--></option>";
	while (list($key,$val)= mssql_fetch_array($query)) { 
		 if ($default == $key) {$selected="selected";} else {$selected="";}  
		   $result.="<option value=\"$key\" $selected>$val</option>\n"; 
	} 
	$result.="</select>\n"; 
	return $result; 
}
function ComboJava($query, $name, $default,$pagina) { 
	$result="<select onchange=funcion('parent',this,0) name=\"$name\" id=\"$name\" class=\"datos\">\n"; 
	$result.="<option value='' selected>--></option>";
	while (list($key,$val)= mysqli_fetch_array($query)) { 
		 if ($default == $key) {$selected="selected";} else {$selected="";}  
		   $result.="<option value=\"$pagina&id=$key\" $selected>$val</option>\n"; 
	} 
	$result.="</select>\n"; 
	return $result; 
}
function ComboJava2($query, $name, $default,$pagina) { 
	$result="<select onchange=funcion('parent',this,0) name=\"$name\" id=\"$name\" class=\"datos\">\n"; 
	$result.="<option value='$pagina=0' selected>--></option>";
	while (list($key,$val)= mysqli_fetch_array($query)) { 
		 if ($default == $key) {$selected="selected";} else {$selected="";}  
		   $result.="<option value=\"$pagina"."=$key\" $selected>$val</option>\n"; 
	} 
	$result.="</select>\n"; 
	return $result; 
}

function cambiarletras($cadena){
	$traduce=array( 'á' => '&aacute;','é' => '&eacute;','í' => '&iacute;','ó' => '&oacute;','ú' =>'&uacute;','ñ' => '&ntilde;', 'Á' => '&Aacute;','É' => '&Eacute;','Í' => '&Iacute;','Ó' => '&Oacute;','Ú' =>'&Uacute;','Ñ' => '&Ntilde;');
	//$traduce = get_html_translation_table(HTML_ENTITIES);
        $sale=strtr( $cadena, $traduce );
return $sale;
}

/* 
--------------------------------------------------------------------------------------------------------
 Funcion para la construccion del query que inserta o actualiza datos en la base SQL
 Parametros: 
  $id_principal: el valor id de la tabla principal (si existe, sera una actualizacion, sino, un insert) 
	$tabla: nombre de la tabla donde se realiza la inserci�n o actualizaci�n
	$condicion: clausula where que contiene la condici�n para cuando se realiza un update
	$tipoSql: 0 para sql server y 1 para mysql
	$bitacora : 1 para ejecutar la bitacora y 0 para no ejecutarla
--------------------------------------------------------------------------------------------------------
*/ 
function enviaResultadosLab($cFolio,$cId_Origen,$nResultadoFinal, $nStatus,$fecha){
	$mId_Origen = explode("_",$cId_Origen);
	$x = rand(10012,99999);
	switch($mId_Origen[0]){
		case "ISSSTE":
			$pagina_resultados = "http://201.116.34.46/influenza2/loadDataLab.php";
			$parametros ="?folioMuestra=$cFolio&nResultado=$nResultadoFinal&fecha=$fecha&idOrigen=$mId_Origen[1]&nStatus=$nStatus&x=$x";
			$pag = $pagina_resultados.$parametros;
			break;
	}
	return $pag;	
}
function enviaResultadosLab2($cFolio,$cId_Origen,$nResultadoFinal, $nStatus,$fecha)
{
	$mId_Origen = explode("_",$cId_Origen);
	$x = rand(10012,99999);
	switch($mId_Origen[0])
	{
		case "ISSSTE":
			$pagina_resultados = "http://201.116.34.46/influenza2/loadDataLab2.php";
			$parametros ="?folioMuestra=$cFolio&nResultado=$nResultadoFinal&fecha=$fecha&idOrigen=$mId_Origen[1]&nStatus=$nStatus&x=$x";
			$pag = $pagina_resultados.$parametros;
			break;
	}
	return $pag;	
}
/* 
--------------------------------------------------------------------------------------------------------
 Funcion para la construccion del query que inserta o actualiza datos en la base SQL
 Parametros: 
  $id_principal: el valor id de la tabla principal (si existe, sera una actualizacion, sino, un insert) 
	$tabla: nombre de la tabla donde se realiza la inserci�n o actualizaci�n
	$condicion: clausula where que contiene la condici�n para cuando se realiza un update
	$tipoSql: 0 para sql server y 1 para mysql
	$bitacora : 1 para ejecutar la bitacora y 0 para no ejecutarla
--------------------------------------------------------------------------------------------------------
*/ 
function querySQL($id_principal,$tabla, $condicion,$tipoSql=0,$bitacora = 0, $link, $matriz){

	$dHoy = date("Ymd H:i:s");
	if (!$id_principal > 0) {		
		$accion = 1;	
		// Construye nombres de campos 
		$insert = "INSERT INTO $tabla (";
		$valores = " VALUES (";
		$query = mssql_query("select * from $tabla",$link);
		while($field = mssql_fetch_field($query)){
			$cCampo = $field->name;
			if($field->type == "char" or $field->type == "datetime") $com = "'"; else $com = "";
			foreach($matriz as $valor => $x){
				$campoValor = "$".$cCampo;
				eval("\$campoValor = \"$campoValor\";");
				if($cCampo == $valor and $campoValor != ''){
					$insert .= $cCampo.",";
					if($field->type == "datetime")
						$valores .= $com.formatofecha($campoValor)."$com,";
					else
						$valores .= $com.$campoValor."$com,";
				}
			}
		}
		$insert .= " fCreacion)";
		$valores .= "'$dHoy')";		
		$sql = $insert.$valores;
		
	}else{
	
		$accion = 2;
		// Construye nombres de campos 
		$update = "UPDATE $tabla SET ";
		$query = mssql_query("select * from $tabla",$link);
		while($field = mssql_fetch_field($query)){
			$cCampo = $field->name;
			if($field->type == "char" or $field->type == "datetime") $com = "'"; else $com = "";
			foreach($matriz as $valor => $x){
				$campoValor = "$".$cCampo;
				eval("\$campoValor = \"$campoValor\";");
				if($cCampo == $valor and $campoValor != '' and $cCampo != 'id_principal' and $cCampo != 'id_unidad'){
					if($field->type == "datetime") {
						$valores = $com.formatofecha($campoValor)."$com,";
					}else{
						$valores = $com.$campoValor.$com.",";
					}
					$sql .= $cCampo." = ".rtrim($valores);
				}
			}
		}
	echo $sql;
		// quita ultima coma
		$sql = substr($sql,0,-1);
		
		$sql = $update.$sql.$condicion;
	
	}
	
	echo $sql;
	$ejecutaQuerys = mssql_query($sql,$link) or die(mssql_get_last_message());
	
	
	// si inserto un nuevo registro, guarda el id principal
	if(!$id_principal){
		$sqllast="SELECT IDENT_CURRENT('$tabla')";
		$res = mssql_query($sqllast,$link) or die(mssql_get_last_message());
		list($last) = mssql_fetch_array($res);
	}else{
		$last = $id_principal;
	}
	//---------------------------------------------------------------------------------------------
	// Agrega registro a la bitacora de seguridad
	if($bitacora == 1){
		bitacora($last,$tabla,$accion,$link);
	}
		
	// --------------------------------------------------------------------------------------------
	return $last;
}

/*
TERMINA FUNCI�N DE CONSTRUCCI�N DE QUERYS
*/
function combo_sqop($query, $name, $default, $x, $status='') { 
	if($x) $onchange = "onchange='$x'"; else $onchange = '';
	$result="<select $onchange name=\"$name\" id=\"$name\" class=\"datos\" $status>\n"; 
	while (list($key,$val)= mssql_fetch_array($query)) { 
		 if (rtrim($default) == rtrim($key)) {$selected="selected";} else {$selected="";}  
		   $result.="<option value=\"$key\" $selected>$val</option>\n"; 
	} 
	$result.="</select>\n"; 
	return $result; 
}
?>